// #include <stdio.h>
// #include <stdbool.h>
//
// int main( )
// {
//     //循环 100次打印 做一些重复并且有规律的事情
//     //while 循环 do-while 循环 for循环
//
//     //while condition
//
//     // while (true)
//     // {
//     //     printf("hello world\n");
//     // }
//     // while (1)
//     // {
//     //     printf("hello world\n");
//     // }
//
//     //结合变量 控制次数
//     // int count = 0;
//     // while (count<10)
//     // {
//     //     printf("hello world %2d\n",count);
//     //     count++;
//     // }
//
//     // int count = 0;
//     // while (count++ <=3)
//     // {
//     //     printf("hello world %2d\n",count);
//     // }
//
//     //do while 循环 无论条件成立与否 都会执行一次
//     // do
//     // {
//     //     printf("hello world\n");
//     // }while (false);
//     //
//     // int count = 1;
//     // do
//     // {
//     //     printf("hello world %2d\n",count);
//     // }while (count++ <=3);
//     //
//     //
//     // for (int i=0;i<10;i++)
//     // {
//     //     printf("hello world %2d\n",i);
//     // }
//
//     //i 出了for循环就死了
//
//     //for循环别的形态
//     //死循环 大括号也可以省略
//     //while(1);
//     // for (;;)
//     // {
//     //     printf("hello world\n");
//     // }
//
//     //循环应用
//     //简单循环
//
//     // //单纯重复效果类
//     // for (int i=0;i<10;i++)
//     // {
//     //     printf("hello world\n");
//     // }
//     //
//     // //循环递推操作
//     // int num  =0;
//     // for (int i=0;i<10;i++)
//     // {
//     //     num +=i;
//     // }
//     // printf("num = %d\n",num);
//
//     //斐波那契数列
//     //f1=1  f2=1 f3=f1+f2
//     //f4=f3+f2
//
//     //f8=?
//
//     // int f1 = 1;
//     // int f2 = 1;
//     // int n = 0;
//     // printf("请输入一个数\n");
//     // scanf("%d",&n);
//     // int f3 = 0;
//     // if (n==1||n==2)
//     // {
//     //     printf("1\n");
//     // }else
//     // {
//     //     for (int i=3;i<=n;i++)
//     //     {
//     //         f3 = f1+f2;
//     //         f1=f2;
//     //         f2=f3;
//     //     }
//     // }
//     // printf("f%d = %d\n",n,f3);
//
//     //遍历区间 100-1000
//
//     //循环嵌套
//     //描述表格下标 外循环表示的是行数 内循环是列数
//     // for (int i=1;i<=9;i++)
//     // {
//     //     for (int j=1;j<=9;j++)
//     //     {
//     //         printf("%d*%d=%2d\t",i,j,i*j);
//     //     }
//     //     printf("\n");
//     // }
//
//     //行与数目的关系
//     // for (int i=1;i<=9;i++)
//     // {
//     //     for (int j=1;j<=9;j++)
//     //     {
//     //         if (i >= j)
//     //         {
//     //             printf("%d*%d=%2d\t",i,j,i*j);
//     //         }
//     //     }
//     //     printf("\n");
//     // }
//
//     //打印金字塔
//
//     // 跳转语句
//
//     // break 跳出一层循环
//     //system("pause");
//     //system("cls");
//
//     // continue 结束本次循环 直接进入下次循环
//
//     //goto 只能在同一个函数中调整 不能调整到其他地方去
//
//     //沟通跳转
//
// //     for (int i=1;i<=9;i++)
// //     {
// //         for (int j=1;j<=9;j++)
// //         {
// //             if (i >= j)
// //             {
// //                 printf("%d*%d=%2d\t",i,j,i*j);
// //                 goto  dong;
// //             }
// //         }
// //     }
// //
// // dong:; //没有这个分号 在下面定义变量是错误的
// //
// //
// //     printf("hello world\n");
//
//
//     //学会创建数组 类型 数组名[长度]
//     //数组长度 必须常量 不能变量
//     // int arr[4];
//
//     //动态数组 指针去做
//     // int parr['a']; 会自动转换
//
//     //c语言不存在长度为0的数组  数组长度也不能是负数
//     //数组的内存长相 //连续的内存
//     //数组的最大下标是数组长度-1
//     //数组名代表数组首元素的地址 第1个元素的地址
//
//     // int arr[10];
//     // printf("%p\n",arr);
//     // printf("%p\n",&arr[0]);
//
//     //创建数组并初始化
//     //{} 的数据作为初始化
//     // int arr[3]={1,2,3};
//     // printf("%d\n",arr[0]);
//     // printf("%d\n",arr[1]);
//     // printf("%d\n",arr[2]);
//     //
//     // //会默认推导出数组长度
//     // int arr1[]={1,2,3};
//     // printf("%d\n",arr1[0]);
//     // printf("%d\n",arr1[1]);
//     // printf("%d\n",arr1[2]);
//     //
//     // // 默认初始化 会默认为0
//     // int arr2[3]={1,2};
//     // printf("%d\n",arr2[0]);
//     // printf("%d\n",arr2[1]);
//     // printf("%d\n",arr2[2]);
//
//     //错误代码
//     // int arr4[4];
//     // arr4={1,2,3,4};
//
//
//     //使用数组
//     //数组名[数组下标]
//     //当做一个普通的变量 只是变量名比较特殊 数组名[数组下标];
//
//     // int sum[3]={0};
//     //
//     // for (int i=0;i<3;i++)
//     // {
//     //     sum[i]=i;
//     // }
//     //
//     // for (int i=0;i<3;i++)
//     // {
//     //     printf("%d\n",sum[i]);
//     // }
//
//     //
//    //一维数组的具体操作 增删改查
//
//    //求和
// // 求和
// //    int money[4] = {1,2,3,4};
// //    int sum = 0;
// //    for(int i=0;i<4;i++){
// //         sum+=money[i];
// //    }
// //    printf("%d\n",sum);
// //
// //     //用户输入数据 输入-1号结束
// //     int arr[100]={0}; //记录当前数组有多少元素
// //     int curSize=0;
// //     while (true) {
// //         int key=0;
// //         printf("Please input your money:\n");
// //         scanf("%d",&key);
// //         if (key==-1) {
// //             break;
// //         }
// //         arr[curSize++]=key;
// //         //调整数组 保持数组的有序性插入
// //         for (int t=curSize-1;t>0;t--) {
// //             if (arr[t] < arr[t-1]) {
// //                 int temp=arr[t-1];
// //                 arr[t-1]=arr[t];
// //                 arr[t]=temp;
// //             }else {
// //                 break;
// //             }
// //         }
// //     }
// //     for(int i=0;i<curSize;i++) {
// //         printf("%d ",arr[i]);
// //     }
// //
// //     //数组的有序操作
// //     //条件 换到0下标为止 换到第一次小于它的位置
// //
// //
// //
// //     //数组的查找和删除
// //     int pos = -1; //因为数组有0下标
// //     printf("Please input your number:\n");
// //     scanf("%d",&pos);
// //     for(int i=0;i<curSize;i++) {
// //         if (arr[i] == pos) {
// //             printf("%d ",arr[i]);
// //             pos =i;
// //             break;
// //         }
// //     }
// //     printf("%d\n",pos);
//
//
// //冒泡排序
//     // int arr[10]={1,5,2,9,7,4,2,1,0,6};
//     // for(int i=0;i<10;i++) {
//     //     for(int j=0;j<10-i;j++) {
//     //         if (arr[j]> arr[j+1]) {
//     //             int temp=arr[j];
//     //             arr[j]=arr[j+1];
//     //             arr[j+1]=temp;
//     //         }
//     //     }
//     // }
//     //
//     // for(int i=0;i<10;i++) {
//     //     printf("%d\n",arr[i]);
//     // }
//
//     //有序数组的特殊操作
//
//     // int arr[10]={1,2,3,4,5,6,7,8,9,10};
//     // int left = 0;
//     // int right = 10-1;
//     // int iNum;
//     // printf("Enter the number : ");
//     // scanf("%d",&iNum);
//     // while(left <= right) {
//     //     int mid = left + (right - left) / 2;
//     //     if (arr[mid]==iNum) {
//     //         printf("%d ",arr[mid]);
//     //         break;
//     //     }
//     //     if (arr[mid]>iNum) {
//     //         right = mid - 1;
//     //     }else{
//     //         left = mid + 1;
//     //     }
//     // }
//
//     //归并算法
//     // int one[4] = {1,2,3,4};
//     // int two[4] = {5,6,7,8};
//     // int three[8]={0};
//     //
//     // int i = 0;
//     // int j = 0;
//     // int t = 0;
//     // while(i < 4 && j<4) {
//     //     if (one[i]< two[j]) {
//     //         three[t++]=one[i];
//     //         i++;
//     //     }else {
//     //         three[t++]=two[j];
//     //         j++;
//     //     }
//     // }
//     //
//     // for (;i<4;i++) {
//     //     three[t++]=one[i];
//     // }
//     //
//     // for (;j<4;j++) {
//     //     three[t++]=two[j];
//     // }
//     //
//     // for (t=0;t<8;t++) {
//     //     printf("%d\n",three[t]);
//     // }
//     //
//     //
//     // printf("%s\n","ILOVEYOU");
//     //
//     // char str1[]={'A','B','\0','D','E'};
//     // printf("%s\n",str1);
//     // printf("%s\n",&str1[0]);
//     // printf("%s\n",&str1[1]);
//     // //可以直接用字符串给字符数组做初始化
//     // char str2[]="ILOVEYOU";
//     // printf("%d\n",sizeof(str2)/sizeof(char));
//     //
//     // //没有\0的串会打印怎么样 //这个没有\0字符串结束标记
//     // char str3[]={'A','B','C'};
//     // printf("%s\n",str3);
//     //
//     // //字符串常用操作 scanf 只接收空格之前的内容
//     // char inputstr[100];
//     // scanf("%s",inputstr);
//     // printf("%s\n",inputstr);
//     // //gets函数可以接受带空格的数据
//     // while (getchar()!='\n'); //解决字符跳过现象
//     // gets(inputstr);
//     // printf("%s\n",inputstr);
//     //
//     // puts(inputstr); //打印的时候会自带换行
//     //
//     // //通常操作字符串用的while循环
//     // int count=0;
//     // while (str1[count]!='\0') {
//     //     count++;
//     // }
//     // printf("%d\n",count);
//
//     //字符串做赋值 不能直接做赋值
//     char one[]="sdf";
//     char two[]="abc";
//     //错误
//     //one=two;
//     int i=0;
//     while (two[i]!='\0') {
//         one[i]=two[i];
//         i++;
//     }
//     one[i]='\0'; //一定要处理
//     printf("%s\n",one);
//
//     //字符串比较过程 从左右 依次去比较
//
//     //一个汉字占用两个字符  汉字编码是一个负数  如果正常编码是正数 汉字的是负数
//
//
//
//     return 0;
// }